package com.yang.action;

import com.jspsmart.upload.*;
import com.yang.entity.User;
import com.yang.service.UserService;
import com.yang.util.RespEntity;
import com.yang.util.RespUtil;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Date;
import java.util.UUID;

@WebServlet("/updateUser")
public class UserUpdateAction extends HttpServlet {
    UserService userService = new UserService();

    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        try {
            //文件上传初始化
            SmartUpload su=new SmartUpload();
            su.setCharset("utf-8");
            su.initialize(this.getServletConfig(),req,resp);
            //得到文件上传的保存路径
            String filePath=req.getServletContext().getRealPath("/img/users/");
            System.out.println(filePath);
            //开始解析数据
            su.upload();
            //得到上传的文件【所有的文件】
            Files files = su.getFiles();
            //但是我们知道这里只有一个,所以得到这一个文件
            File file = files.getFile(0);
            String userImg=null;
            //判断是否存在上传的文件【判断文件的大小】
            if(file.getSize()>0){
                //得到文件的后缀
                String fileExt = file.getFileExt();
                    //防名字冲突
                String fileName = UUID.randomUUID().toString();
                fileName=fileName+"."+fileExt;
                //保存在数据库中的地址
                userImg="img/users/"+fileName;
                //得到了文件的完全路径【图片保存在服务器的地址】
                filePath=filePath+fileName;
                //保存文件
                file.saveAs(filePath);
            }
            //获取其他的数据
            Request myReq = su.getRequest();
            String id = myReq.getParameter("id");

            String name = myReq.getParameter("name");
            String pwd = myReq.getParameter("pwd");
            String sex = myReq.getParameter("sex");
            String birthday = myReq.getParameter("birthday");
            String phone = myReq.getParameter("phone");
            String master = myReq.getParameter("master");
            User user=new User();
            user.setId(Integer.parseInt(id));
            user.setMaster(Integer.parseInt(master));
            if(pwd!=null&&!"".equals(pwd)){
                user.setPwd(pwd);
            }
            if(sex!=null&&!"".equals(sex)){
                user.setSex(sex);
            }
            if(name!=null&&!"".equals(name)){
                user.setName(name);
            }
            if(birthday!=null&&!"".equals(birthday)){
                user.setBirthday(Date.valueOf(birthday));
            }
            if(phone!=null&&!"".equals(phone)){
                user.setPhone(phone);
            }
            if(userImg!=null&&!"".equals(userImg)){
                user.setPhoto(userImg);
            }
            //调用service进行处理
            UserService userService=new UserService();
            RespEntity respEntity=userService.updateUserById(user);
            RespUtil.sendJSON(resp,respEntity);//修改执行完毕
        } catch (SmartUploadException e) {
            System.out.println("错误");
            e.printStackTrace();
            RespUtil.sendJSON(resp,new RespEntity(2000,"修改错误",0));//修改出现了错误
        }

    }
}

